package br.com.petshop.entidades;

import br.com.petshop.dao.frames.SwingColumn;
import java.io.Serializable;

/**
 *
 * @author Sidney
 * @version 1.0
 */
public class Animal implements Serializable{
    //@SwingColumn(description="Tipo")
    private AnimalType tipo;//este enum representa o campo tipo no banco de dados
    @SwingColumn(description="Id")
    private Integer Id;
    @SwingColumn(description="IdCliente")
    private Cliente idCliente;//representa o id do dono do animal
    @SwingColumn(description="Nome")
    private String nome;
    @SwingColumn(description="Raça")
    private String raca;
    @SwingColumn(description="Idade")
    private int idade;

    public Animal(){
        
    }
    public Animal(Integer idAnimal) {
        this.Id = idAnimal;
    }

    public Animal(AnimalType tipo, Integer idAnimal, Cliente idCliente, String nome, String raca, int idade) {
        this.tipo = tipo;
        this.Id= idAnimal;
        this.idCliente = idCliente;
        this.nome = nome;
        this.raca = raca;
        this.idade = idade;
    }

    public Integer getId() {
        return Id;
    }

    public void setId(Integer idAnimal) {
        this.Id = idAnimal;
    }

    public Cliente getIdCliente() {
        return idCliente;
    }

    public void setIdCliente(Cliente idCliente) {
        this.idCliente = idCliente;
    }

    public int getIdade() {
        return idade;
    }

    public void setIdade(int idade) {
        this.idade = idade;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    @Override
    public String toString() {
        return getNome();
    }

    public String getRaca() {
        return raca;
    }

    public void setRaca(String raca) {
        this.raca = raca;
    }

    public AnimalType getTipo() {
        return tipo;
    }

    public void setTipo(AnimalType tipo) {
        this.tipo = tipo;
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Animal other = (Animal) obj;
        if (this.Id != other.Id && (this.Id == null || !this.Id.equals(other.Id))) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 23 * hash + (this.Id != null ? this.Id.hashCode() : 0);
        return hash;
    }    
    
}
